// interface User {
//     name: string
//     age: number
//     obtainFn: () => number//表示函数，和返回类型，不可以书写函数体
//     obtainFn2():void
// }
// let user:User={
//     name:'测试1号',
//     age:18,
//     obtainFn(){return 1},//由于规定了void返回类型，此处不能返回值，否则会在调用时报错
//     obtainFn2(){}
// }
// //警告提示
// console.log(user.obtainFn())
//
// interface testFn{
//     (n:number):void
// }
// let fs:testFn = function(n){
//
// }
// function CallBack(fn:testFn){
//     fn(1)
// }

// interface A{
//     A1:number
// }
// interface B extends A{
//     B1:string
// }
// interface C extends B{
//     C1:boolean
// }
// let B:B= {
//     A1:1,
//     B1:'1'
// }
// let C:C = {
//     A1:1,
//     B1:'1',
//     C1:true
// }

// type a = {
//     a1: number
// }
// type b = {
//     b1: string
// }
// type c = {
//     c1: boolean
// } & a & b
// let cs: c = {
//     a1: 1,
//     b1: '1',
//     c1: true
// }

interface User{
    name:'张三'|'李四'
    age?:number
}
let puser = {
    name:'张三' as '张三'|'李四',
    sex:'男',
    age:1
}
let user:User={
    name:'张三' as '张三'|'李四',
}
